package com.iris.live.services.data.models;

import com.fasterxml.jackson.annotation.JsonProperty;

import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Date;

/**
 * Created by xin on 2016/7/11.
 */
@SuppressWarnings("JpaDataSourceORMInspection")
@Entity
@Table(name = "LSH集团消息", schema = "sg_lsh", catalog = "")
public class Lsh集团消息Model {
    private Integer 信息编号;
    private String 分类;
    private String 名称;
    private String 内容;
    private String 话术;
    private Date 开始日期;
    private Date 结束日期;
    private String 宣传页路径;
    private String 附件路径;
    private Date 推送时间;
    private Timestamp 更新时间;
    //    private Lsh集团信息车型Model 集团信息车型;
//    private Lsh集团信息部门Model lsh集团信息部门Model;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "信息编号")
    @JsonProperty("信息编号")
    public Integer get信息编号() {
        return 信息编号;
    }

    public void set信息编号(Integer 信息编号) {
        this.信息编号 = 信息编号;
    }

    @Basic
    @Column(name = "分类")
    @JsonProperty("分类")
    public String get分类() {
        return 分类;
    }

    public void set分类(String 分类) {
        this.分类 = 分类;
    }

    @Basic
    @Column(name = "名称")
    @JsonProperty("名称")
    public String get名称() {
        return 名称;
    }

    public void set名称(String 名称) {
        this.名称 = 名称;
    }

    @Basic
    @Column(name = "内容")
    @JsonProperty("内容")
    public String get内容() {
        return 内容;
    }

    public void set内容(String 内容) {
        this.内容 = 内容;
    }

    @Basic
    @Column(name = "话术")
    @JsonProperty("话术")
    public String get话术() {
        return 话术;
    }

    public void set话术(String 话术) {
        this.话术 = 话术;
    }

    @Basic
    @Column(name = "开始日期")
    @JsonProperty("开始日期")
    public Date get开始日期() {
        return 开始日期;
    }

    public void set开始日期(Date 开始日期) {
        this.开始日期 = 开始日期;
    }

    @Basic
    @Column(name = "结束日期")
    @JsonProperty("结束日期")
    public Date get结束日期() {
        return 结束日期;
    }

    public void set结束日期(Date 结束日期) {
        this.结束日期 = 结束日期;
    }

    @Basic
    @Column(name = "宣传页路径")
    @JsonProperty("宣传页路径")
    public String get宣传页路径() {
        return 宣传页路径;
    }

    public void set宣传页路径(String 宣传页路径) {
        this.宣传页路径 = 宣传页路径;
    }

    @Basic
    @Column(name = "附件路径")
    @JsonProperty("附件路径")
    public String get附件路径() {
        return 附件路径;
    }

    public void set附件路径(String 附件路径) {
        this.附件路径 = 附件路径;
    }

    @Basic
    @Column(name = "推送时间")
    @JsonProperty("推送时间")
    public Date get推送时间() {
        return 推送时间;
    }

    public void set推送时间(Date 推送时间) {
        this.推送时间 = 推送时间;
    }

    @Basic
    @Column(name = "更新时间")
    @JsonProperty("更新时间")
    public Timestamp get更新时间() {
        return 更新时间;
    }

    public void set更新时间(Timestamp 更新时间) {
        this.更新时间 = 更新时间;
    }

    @PrePersist
    @PreUpdate
    public void onPreUpdate() {
        this.set更新时间(new Timestamp(System.currentTimeMillis()));
    }


//    @OneToOne
//    @JoinColumn(referencedColumnName = "信息编号", name = "信息编号", insertable = false, updatable = false)
//    @JsonIgnore
//    public Lsh集团信息车型Model get集团信息车型() {
//        return 集团信息车型;
//    }
//
//    public void set集团信息车型(Lsh集团信息车型Model 集团信息车型) {
//        this.集团信息车型 = 集团信息车型;
//    }


//
//    @OneToOne
//    @JoinColumn(referencedColumnName = "信息编号", name = "信息编号", insertable = false, updatable = false)
//    @JsonIgnore
//    public Lsh集团信息部门Model getLsh集团信息部门Model() {
//        return lsh集团信息部门Model;
//    }
//
//    public void setLsh集团信息部门Model(Lsh集团信息部门Model lsh集团信息部门Model) {
//        this.lsh集团信息部门Model = lsh集团信息部门Model;
//    }


    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Lsh集团消息Model that = (Lsh集团消息Model) o;

        if (信息编号 != null ? !信息编号.equals(that.信息编号) : that.信息编号 != null) return false;
        if (分类 != null ? !分类.equals(that.分类) : that.分类 != null) return false;
        if (名称 != null ? !名称.equals(that.名称) : that.名称 != null) return false;
        if (内容 != null ? !内容.equals(that.内容) : that.内容 != null) return false;
        if (话术 != null ? !话术.equals(that.话术) : that.话术 != null) return false;
        if (开始日期 != null ? !开始日期.equals(that.开始日期) : that.开始日期 != null) return false;
        if (结束日期 != null ? !结束日期.equals(that.结束日期) : that.结束日期 != null) return false;
        if (宣传页路径 != null ? !宣传页路径.equals(that.宣传页路径) : that.宣传页路径 != null) return false;
        if (附件路径 != null ? !附件路径.equals(that.附件路径) : that.附件路径 != null) return false;
        if (推送时间 != null ? !推送时间.equals(that.推送时间) : that.推送时间 != null) return false;
        if (更新时间 != null ? !更新时间.equals(that.更新时间) : that.更新时间 != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = (信息编号 != null ? 信息编号.hashCode() : 0);
        result = 31 * result + (分类 != null ? 分类.hashCode() : 0);
        result = 31 * result + (名称 != null ? 名称.hashCode() : 0);
        result = 31 * result + (内容 != null ? 内容.hashCode() : 0);
        result = 31 * result + (话术 != null ? 话术.hashCode() : 0);
        result = 31 * result + (开始日期 != null ? 开始日期.hashCode() : 0);
        result = 31 * result + (结束日期 != null ? 结束日期.hashCode() : 0);
        result = 31 * result + (宣传页路径 != null ? 宣传页路径.hashCode() : 0);
        result = 31 * result + (附件路径 != null ? 附件路径.hashCode() : 0);
        result = 31 * result + (推送时间 != null ? 推送时间.hashCode() : 0);
        result = 31 * result + (更新时间 != null ? 更新时间.hashCode() : 0);
        return result;
    }
}
